package es.uem.videojuego.implent;

import java.io.IOException;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.AudioManager;
import android.media.SoundPool;
import es.uem.videojuego.marco.Audio;
import es.uem.videojuego.marco.Musica;
import es.uem.videojuego.marco.Sonido;

public class AndroidAudio implements Audio {
	
	AssetManager assets;
	SoundPool soundPool;
	
	public AndroidAudio(Activity activity){	
		activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);
		this.assets = activity.getAssets();
		this.soundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0);
		}
	
	@Override
	public Musica nuevaMusica(String nombrearchivo) {
	try{
		AssetFileDescriptor assetDescriptor = assets.openFd(nombrearchivo);
		return new AndroidMusica(assetDescriptor);
		} catch (IOException e) { 
			throw new RuntimeException("no se ha podido cargar el archivo'"+nombrearchivo+"'");
		}
	}
	
	@Override
	public Sonido nuevoSonido(String nombrearchivo){
	try{
		AssetFileDescriptor assetDescriptor = assets.openFd(nombrearchivo);
		int soundId = soundPool.load(assetDescriptor,0);		
		return new AndroidSonido(soundPool, soundId);
		} catch (IOException e) { 
				throw new RuntimeException("no se ha podido cargar el archivo'"+nombrearchivo+"'");
		}
	}
}

	